package com.zjsru.plan2025.oneday;

/**
 * 2566. 替换一个数字后的最大差值
 *
 * @Author: cookLee
 * @Date: 2025-06-14
 */
public class MinMaxDifference {

    /**
     * 主
     * \
     * 输入：num = 11891
     * 输出：99009
     * 解释：
     * 为了得到最大值，我们将数字 1 替换成数字 9 ，得到 99899 。
     * 为了得到最小值，我们将数字 1 替换成数字 0 ，得到 890 。
     * 两个数字的差值为 99009 。
     * \
     * 输入：num = 90
     * 输出：99
     * 解释：
     * 可以得到的最大值是 99（将 0 替换成 9），最小值是 0（将 9 替换成 0）。
     * 所以我们得到 99 。
     * \
     *
     * @param args args
     */
    public static void main(String[] args) {
        MinMaxDifference minMaxDifference = new MinMaxDifference();
        System.out.println(minMaxDifference.minMaxDifference(90));
    }

    public int minMaxDifference(int num) {
        String str = String.valueOf(num);
        String temp = "";
        int mark = 0;
        while (mark < str.length() && str.charAt(mark) == '9') {
            mark++;
        }
        if (mark == str.length()) {
            return num;
        } else if (mark < str.length()) {
            temp = str.replace(str.charAt(mark), '9');
        }
        //最小值直接替换第一位的数字即是最小的
        return Integer.parseInt(temp) - Integer.parseInt(str.replace(str.charAt(0), '0'));
    }
}
